/**
 * 权限验证工具
 */
import { useUserStore } from '@/stores/user'
import { ElMessage } from 'element-plus'

/**
 * 检查是否登录，未登录则提示
 * @param {String} message - 提示消息
 * @returns {Boolean} 是否已登录
 */
export function checkLogin(message = '请先登录') {
  const userStore = useUserStore()
  const isLoggedIn = userStore.isLoggedIn()
  
  if (!isLoggedIn) {
    ElMessage.warning(message)
  }
  
  return isLoggedIn
}

/**
 * 需要登录的操作装饰器
 * @param {Function} action - 需要执行的操作
 * @param {String} message - 未登录提示消息
 * @returns {Function} 包装后的函数
 */
export function requireLogin(action, message = '请先登录') {
  return async (...args) => {
    if (checkLogin(message)) {
      return await action(...args)
    }
    return null
  }
}

/**
 * 获取当前用户信息
 * @returns {Object|null} 用户信息
 */
export function getCurrentUser() {
  const userStore = useUserStore()
  return userStore.userInfo
}

/**
 * 获取当前用户ID
 * @returns {Number|null} 用户ID
 */
export function getCurrentUserId() {
  const user = getCurrentUser()
  return user?.id || null
}
